vb中此条: "select * from problem1 where (reasonself and 4)=4"查询语句,为何查出来的记录数不对?

来源:百度知道 编辑:UC知道 时间:2024/06/14 16:10:42
用的是ACCESS数据库!reasonself是长整型字段,表Problem1中有三条记录,reasonself字段值分别是:1、2、4 为何我查出来的记录数为0?不应该是1么?如何修改?谢谢啦!
我是这么做的:strtmp = "select * from problem1 where (reasonself and 4)=4"
Set rs = accessDBAnswer(strtmp)
MsgBox rs.RecordCount
显示的是0!!但改成:where (reasonself + 0)=4 显示的就是1!不是要简单统计reasonself=4的记录数,与运算是必须做的,这里只是一个测试的语句!大家帮帮我吧,这个小问题困扰我好几天了,搞不定啊!
我是用二进制转换成十进制的方法放在REASONSELF字段来表示用户选了哪几个原因,现在想通过做与运算判断这个原因有没有?

有可能reasonself 的类型不是数字型,否则应该能查出来

SQL = Trim$(SQL)
Set conn = New ADODB.Connection
Set rst = New ADODB.Recordset
conn.ConnectionString = xDNS
conn.Open
rst.CursorLocation = adUseClient '改ADO为客户端
'默认的为服务器端,统计个数为-1,不是实际个数
Set rst.ActiveConnection = conn
rst.LockType = adLockOptimistic
rst.CursorType = adOpenKeyset
rst.Open SQL
Set ExeSQL = rst
Set rst = Nothing
Set conn = Nothing

上面是连接数据库的代码,注意中间有说明的地方.我以前也遇到过你的问题,这样改一下就可以了.

如果你要计数 就要用Count
select count(*) from problem1 where resonself = 4

==

我想问一下你的And是想起到什么作用呢 reasonself and 4有什么意义呢?

select * from problem1 where reasonself =4